package offer;

/**
 * @author zhanb
 * @Auther ZhanBo
 * @Date 2020/5/20
 */
public class Solution64 {

    public static void main(String[] args) {

    }

    /**
     *
     * 逻辑运算符的短路效应：
     *常见的逻辑运算符有三种，即 “与 \&\&&& ”，“或 ||∣∣ ”，“非 !! ” ；而其有重要的短路效应，如下所示：
     *
     * if(A && B)  // 若 A 为 false ，则 B 的判断不会执行（即短路），直接判定 A && B 为 false
     *
     * if(A || B) // 若 A 为 true ，则 B 的判断不会执行（即短路），直接判定 A || B 为 true
     *
     * 本题需要实现 “当 n = 1n=1 时终止递归” 的需求，可通过短路效应实现。
     *
     * n > 1 && sumNums(n - 1) // 当 n = 1 时 n > 1 不成立 ，此时 “短路” ，终止后续递归
     *
     * Java 中，为构成语句，需加一个辅助布尔量 xx ，否则会报错；
     * Java 中，开启递归函数需改写为 sumNums(n - 1) > 0 ，此整体作为一个布尔量输出，否则会报错；
     * 初始化变量 resres 记录结果。（ Java 可使用第二栏的简洁写法，不用借助变量 resres ）。
     * @param n
     * @return
     */
    public int sumNums(int n) {
        boolean isOk = n> 0 && ( n+=sumNums(n-1)) > 0;
        return n;
    }
}
